package Vistas.Componentes;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import Clases.Orden;
import Clases.Usuario;
import Controladores.ListarOrdenes;
import Vistas.MainVista;

public class MainVistaFiltro extends JPanel implements ActionListener{
	private static final long serialVersionUID = 1L;
	private JTextField txtFechaEstimativa;
	private JButton btnFiltrar;
	private MainVista mv;
	private Usuario u;
	
	public MainVistaFiltro(MainVista mv, Usuario u) {
		this.mv = mv;
		this.u = u;
		
		this.add(new JLabel("Fecha Estimativa: "));
		this.txtFechaEstimativa = new JTextField(20);
		
		this.btnFiltrar = new JButton("Filtrar");
		this.btnFiltrar.addActionListener(this);
		
		this.add(this.txtFechaEstimativa);
		this.add(this.btnFiltrar);
		
		this.setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		List<Orden> ordenes = new ListarOrdenes(this.u).getOrdenes();
		
		DefaultTableModel dtm = new DefaultTableModel();
		
		Vector<String> colNames = new Vector<String>();
		colNames.addElement("ID");
		colNames.addElement("Fecha Alta");		
		colNames.addElement("Producto");
		colNames.addElement("Cantidad");
		colNames.addElement("Estado");
		colNames.addElement("Fecha Estimada");
		colNames.addElement("Descripcion");		
		
		dtm.setColumnIdentifiers(colNames);

		List<Orden> list = ordenes;
		
		if (this.txtFechaEstimativa.getText().length() > 0) {
			for (int i = 0; i < list.size(); i++) {
				if (list.get(i).getFechaEstimada().equals(this.txtFechaEstimativa.getText())) {
					String columna[] = new String[7];

					columna[0]=list.get(i).getID();
					columna[1]=list.get(i).getFechaAlta().toString();
					columna[2]=list.get(i).getProducto().getDescripcion();
					columna[3]=list.get(i).getCantidad().toString();
					columna[4]=list.get(i).getEstado();
					columna[5]=list.get(i).getFechaEstimada().toString();
					columna[6]=list.get(i).getDescripcion();
					
					dtm.addRow(columna);
				}
			}		
		} else {
			for (int i = 0; i < list.size(); i++) {
				String columna[] = new String[7];

				columna[0]=list.get(i).getID();
				columna[1]=list.get(i).getFechaAlta().toString();
				columna[2]=list.get(i).getProducto().getDescripcion();
				columna[3]=list.get(i).getCantidad().toString();
				columna[4]=list.get(i).getEstado();
				columna[5]=list.get(i).getFechaEstimada().toString();
				columna[6]=list.get(i).getDescripcion();
				
				dtm.addRow(columna);
			}		
		}
		
		this.mv.mvOrdenes.jtOrdenes.setModel(dtm);
	}

}
